/*
 * Copyright (C) 2009 Dimitrios C. Michalakos
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.restsql.db;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * GenericTableInfo can be extended by another class to get information about the types and properties of the tables in a database.
 * @author dimitris@jmike.gr
 */
public class GenericTableInfo {

    protected Map<String, Integer> index = new HashMap<String, Integer>();//<column name, internal id>

    /**
     * Tests if the specified table exists in the database.
     * @param table The name of the table.
     * @return true if table exists, false if not.
     */
    public boolean exists(String table) {
        return index.containsKey(table);
    }

    /**
     * Returns the name of the tables in the database.
     * @return A new Set<String> object.
     */
    public Set<String> getNameSet() {
        return index.keySet();
    }

    /**
     * Returns the name of the tables in the database.
     * @return A new String array.
     */
    public String[] getNameArray() {
        return index.keySet().toArray(new String[0]);
    }

    /**
     * Returns the name of the tables in the database.
     * @return A new Iterator object.
     */
    public Iterator<String> getNameIterator() {
        return index.keySet().iterator();
    }
}
